function rgb(r, g, b){
    return toHex(r)+toHex(g)+toHex(b)
}
function toHex(value){
    let a = {0:'0', 1:'1', 2:'2', 3:'3', 4:'4', 5:'5', 6:'6', 7:'7',8:'8', 9:'9', 10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F'};
    value = value<0 ? 0 : value>255 ? 255: value;
    return a[parseInt(value/16)]+(a[value%16])
}

function rgb1(r, g, b){
    return toHex1(r)+toHex1(g)+toHex1(b)
}
function toHex1(value){
    if(value<=0) return '00';
    if(value>255) return 'FF';
    return value.toString(16).toUpperCase()
}

console.log(rgb(0, 0, -20))
console.log(rgb(255, 255, 300))
console.log(rgb1(148, 0, 211))

// rgb(255, 255, 255) // returns FFFFFF
// rgb(255, 255, 300) // returns FFFFFF
// rgb(0,0,0) // returns 000000
// rgb(148, 0, 211) // returns 9400D3